package entidades;

import java.util.ArrayList;
import java.sql.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;

@Entity
public class Medico extends Usuario {

    private static final long serialVersionUID = 1L;
    @Column(nullable = false)
    private String especialidad;
    @Column(nullable = false)
    private int numeroTrabajador;
    @Column(nullable = false)
    private String departamento;
    //Relationships
    @OneToMany(mappedBy = "medico")
    @JoinColumn(nullable = false)
    private List<Cita> cita = new ArrayList<Cita>();
    @OneToMany(mappedBy = "medico")
    @JoinColumn(nullable = false)
    private List<Paciente> pacientes;
    @ManyToMany(mappedBy = "medico")
    private List<HistoriaClinica> hClinica;
    @ManyToMany(mappedBy = "medico_consultable")
    private List<Paciente> paciente_Consultor = new ArrayList<Paciente>();

    public Medico() {
    }

    public Medico(String dni, String password, String nombre, String apellidos, Date fechaNacimiento, String email, String telefono,
            String especialidad, int numeroTrabajador, String departamento) {
        setDni(dni);
        setPassword(password);
        setNombre(nombre);
        setApellidos(apellidos);
        setFechaNacimiento(fechaNacimiento);
        setEmail(email);
        setTelefono(telefono);
        this.especialidad = especialidad;
        this.numeroTrabajador = numeroTrabajador;
        this.departamento = departamento;
    }
    public Medico(String dni, String login, String password, String nombre, String apellidos, Date fechaNacimiento, String email, String telefono) {
        setDni(dni);
        setPassword(password);
        setNombre(nombre);
        setApellidos(apellidos);
        setFechaNacimiento(fechaNacimiento);
        setEmail(email);
        setTelefono(telefono);
    }

    public String getEspecialidad() {
        return especialidad;
    }

    public void setEspecialidad(String especialidad) {
        this.especialidad = especialidad;
    }

    public int getNumeroTrabajador() {
        return numeroTrabajador;
    }

    public void setNumeroTrabajador(int numeroTrabajador) {
        this.numeroTrabajador = numeroTrabajador;
    }

    public String getDepartamento() {
        return departamento;
    }

    public void setDepartamento(String departamento) {
        this.departamento = departamento;
    }

    public List<Cita> getCita() {
        return cita;
    }

    public void setCita(List<Cita> cita) {
        this.cita = cita;
    }

    public List<Paciente> getPacientes() {
        return pacientes;
    }

    public void setPacientes(List<Paciente> pacientes) {
        this.pacientes = pacientes;
    }

    public List<HistoriaClinica> gethClinica() {
        return hClinica;
    }

    public void sethClinica(List<HistoriaClinica> hClinica) {
        this.hClinica = hClinica;
    }

    public List<Paciente> getPaciente_Consultor() {
        return paciente_Consultor;
    }

    public void setPaciente_Consultor(List<Paciente> paciente_Consultor) {
        this.paciente_Consultor = paciente_Consultor;
    }


    @Override
    public String toString() {
        return "Medico{" + "especialidad=" + especialidad + ", numeroTrabajador=" + numeroTrabajador + ", departamento=" + departamento + ", cita=" + cita + ", pacientes=" + pacientes + ", hClinica=" + hClinica + ", paciente_Consultor=" + paciente_Consultor + '}';
    }
}
